Automatically Partitioning Threads Based on Remote Paths
نویسندگان
چکیده
In order to program multithreaded architectures e ectively compiler support to automatically partition programs into threads is essential. This paper proposes a remote-path based thread partitioning framework, which can generate low-level threads from procedural programs automatically. The framework has been implemented in the EARTH-C compiler, which uses Data Dependence Graph (DDG) as an intermediate representation for thread partitioning. To make the compiler work fast, a practical O(n2) algorithm is designed to build non-redundant DDG. To generate correct and e cient threaded code, the remote-path heuristic is employed to satisfy thread partitioning constraints and schedule threads to run fast. The experimental results show that the DDG building algorithm is fast and the remote path based heuristic is very e ective in partitioning programs into \optimized" threads.
منابع مشابه
Single-Point Visibility Constraint Minimum Link Paths in Simple Polygons
We address the following problem: Given a simple polygon $P$ with $n$ vertices and two points $s$ and $t$ inside it, find a minimum link path between them such that a given target point $q$ is visible from at least one point on the path. The method is based on partitioning a portion of $P$ into a number of faces of equal link distance from a source point. This partitioning is essentially a shor...
متن کاملParallel Model Execution on Many Cores
Modelica gives the possibility to compose more and more detailed models since model components can be reused. This means that simulation needs to be faster. One possibility is then to use multi-core technology. Recent advances with more than 1000 cores show the potential. The problem is then how to utilize this enormous processing power in a user friendly way. Partitioning needs to be made auto...
متن کاملPartitioning non-strict languages for multi-threaded code generation
In a non-strict language, functions may return values before their arguments are available, and data structures may be defined before all their components are defined. Compiling such languages to conventional hardware is not straightforward; instructions do not have a fixed compile time ordering. Such an ordering is necessary to execute programs efficiently on current microprocessors. Partition...
متن کاملCompiling Dataaow into Threads Eecient Compiler-controlled Multithreading for Lenient Parallel Languages Compiling Dataaow into Threads Eecient Compiler-controlled Multithreading for Lenient Parallel Languages Compiling Dataaow into Threads Eecient Compiler-controlled Multithreading for Lenient Parallel Languages
Powerful non-strict parallel languages require fast dynamic scheduling. This thesis explores how the need for multithreaded execution can be addressed as a compilation problem, to achieve switching rates approaching what hardware mechanisms might provide. Compiler-controlled multithreading is examined through compilation of a lenient parallel language, ID90, for a threaded abstract machine, TAM...
متن کاملDivide and conquer partitioning techniques for smart water networks
Inserting remote control valves in a water distribution system allows the implementation of the “divide and conquer” paradigm that consists in dividing a large network into smaller subsystems, also called water network partitioning (WNP), for applying water balance, pressure control and water quality protection. Some heuristic procedures, based on different techniques (graph theory, clustering,...
متن کامل